
<!DOCTYPE html>
<html lang="zh-cn">
<head>
    <title>NESASM</title>
    <style>
    html,body{font-size:14px; color:#444;} 
    a {text-decoration: none; color:blue;}
    a:hover{color:red;}
    .main{margin:0 auto; width:960px;}
    .box{border:1px solid #eee;}
    </style>
</head>

<body>

<div class="main">
<p>【从哪里获得？】
</p><p>我们做任何其他事情之前，最好展示怎么使用内存用于我们自己的数据。这个数据可能是任何东西，例如你需要存储的数字或主角的X/Y坐标值。我们将使用自由内存：位于CPU $0000。
</p><p>【怎样使用？】
</p><p>代码段0用ORG伪指令定位到$0000，为一些内存贴上标签，然后ORG定位到$8000开始我们的代码。
</p><p>创建一个带标签的内存（也就是创建一个变量），可使用汇编操作.db，就像这样：
</p><p>    .bank 0
</p><p>    .org $0000
</p><p>label1:    .db   0     
</p><p>byte1:     .db   $A5   ; .db后面的值不需要加#
</p><p>    .org $8000
</p><p>Start:     ; 正常写代码
</p><p>由于label1和byte1实际上都是标签，它们不需要缩进。
</p><p>【载入变量值】
</p><p>    lda label1  ; label1处变量的值赋给A	    
</p><p>    ldx label1  ; label1处变量的值赋给X
</p><p>    ldy label1  ; 你懂得
</p><p>    lda byte1  ; 你懂得
</p><p>【保存到变量】
</p><p>    sta label1  ; 将A的值保存至label1处的变量
</p><p>    stx label1  ; 将X的值保存至label1处的变量
</p><p>    sty label1 ; 你懂得
</p><p>    stx byte1  ; 你懂得
</p><p>【一些重要的现实】
</p><p>我想提的主要内容是，我们除了字节，还可以定义字，但由于NES的CPU只能工作在8bit，所以字不能一次读取或写入。
</p><p>我还没试，你可以这样：
</p><p>inc label1;  增1
</p><p>dec label1;  减1
</p><p>【今日回顾】
</p><p>我不知道明天讲什么，因为我需要完成GBA教程的第13天。我希望你有愉快的一天。为什么你不试试用手柄控制主角移动呢？？？
</p></div>
</body>
</html>
